草庐IT

Java TCP Socket等待空闲?

全部标签

c# - 我想等待抛出 AggregateException,而不仅仅是第一个异常

在等待错误任务(设置了异常的任务)时,await将重新抛出存储的异常。如果存储的异常是AggregateException,它将重新抛出第一个并丢弃其余的。我们如何使用await,同时抛出原始的AggregateException,这样我们才不会不小心丢失错误信息?请注意,当然可以为此考虑hacky解决方案(例如,围绕awaittry-catch,然后调用Task.Wait)。我真的很想找到一个干净的解决方案。此处的最佳做法是什么?我想过使用自定义等待程序,但内置的TaskAwaiter包含许多我不确定如何完全重现的魔法。它调用TPL类型的内部API。我也不想重现所有这些。如果您想使用

c# - 哪些方法可以让线程等待一个事件然后继续执行?

我有一个正在运行的线程,它委派了一些任务。当单个任务完成时,将引发一个事件,说明它已完成。这些任务需要按照特定的顺序运行,并且需要等待上一个任务完成。我怎样才能让线程等到它收到“任务完成”事件?(除了设置标志然后while循环轮询标志的明显事件处理程序之外) 最佳答案 我经常使用AutoResetEvent当我需要等待异步任务完成时等待句柄:publicvoidPerformAsyncTasks(){SomeClasssomeObj=newSomeClass()AutoResetEventwaitHandle=newAutoRese

c# - 异步等待 Task.Run 与 HttpClient.GetAsync

我是c#5异步功能的新手。我试图了解这两种实现之间的区别:实现1:privatevoidStart(){foreach(varurlinurls){ParseHtml(url);}}privateasyncvoidParseHtml(stringurl){varquery=BuildQuery(url);//BuildQueryissomehelpermethodvarhtml=awaitDownloadHtml(query);//...MyTypeparsedItem=ParseHtml(html);SaveTypeToDB(parsedItem);}privateasyncTask

c# - 在 backgroundworker 运行时显示等待光标

在我的Windows应用程序启动期间,我必须调用Web服务来检索一些默认数据以加载到我的应用程序中。在加载表单期间,我运行一个后台程序来检索这些数据。我想显示等待光标,直到检索到此数据。我该怎么做?我试过在调用后台工作程序运行之前设置等待光标。当我报告进度为100时,我将其设置回默认光标。等待光标出现,但当我移动鼠标时它消失了。环境:Windows7专业版64位VS2010C#.NET4.0Windows窗体编辑:我按照JayRiggs建议的方式设置光标。它仅在我不移动鼠标时有效。**更新:我创建了一个按钮点击,它执行以下操作:当我点击按钮并移动鼠标时,无论我是否移动鼠标,都会出现等待

c# - System.Windows.MessageBox 在开始之前不会等待用户输入!

...而且这是没有道理的。T-T在我的Application_Startup事件处理程序中,我的代码看起来有点像这样:privatevoidApplication_Startup(objectsender,StartupEventArgse){stringerrorMessage;if(CheckStartUpConditions(outerrorMessage)){(newMainWindow()).Show();}else{MessageBox.Show(errorMessage,"ApplicationStartup",MessageBoxButton.OK,MessageBox

c# - 如何使用异步等待模式初始化对象

我试图在我的服务类中遵循RAII模式,这意味着当一个对象被构建时,它就被完全初始化了。但是,我在使用异步API时遇到了困难。相关类的结构如下所示classServiceProvider:IServiceProvider//Isonlyusedthroughthisinterface{publicintImportantValue{get;set;}publiceventEventHandlerImportantValueUpdated;publicServiceProvider(IDependency1dep1,IDependency2dep2){//IDependency1provi

c# - 比较 DateTime 结构以查找空闲槽

我想搜索列表中所有用户的事件,并检索每个用户在早上7点到晚上7点之间有30分钟或更长时间空闲的所有时间。但是有一个问题,如果方法被标记为“重复”,即重复位设置为1,则该事件在开始后的52周内重复发生(因此时间不可用)。这些事件的检索在存储过程中进行处理。到目前为止,我的代码如下。我打算以正确的方式编写此程序吗?我不太确定如何继续让函数返回我想要的。有人能帮我解决这个问题吗?Listusernames=//Listofusernames.DateTimestart=//DateTimeforstartofperiodyouwouldliketoschedulemeetingDateTim

c# - 使用 Thread.Sleep 等待的替代方法

首先,我问的不是与C#-AlternativetoThread.Sleep?相同的问题,或AlternativetoThread.SleepinC#?.我认为我没有错误地使用它,并且在特定情况下需要一个真正的替代品。在代码分析运行期间,我看到了一个令人惊讶的违规行为:UsageofThread.Sleep()isasignofflaweddesign.此违规导致PeterRichie'sarticle关于为什么这构成糟糕的设计。我们都知道线程创建是昂贵的,线程中的阻塞意味着对池的争用。我们也知道每个线程都会分配一个meg的内存,所以它应该有一个短的生命周期,阻塞在UI上是邪恶的,使用s

c# - 有什么方法可以处理 ASMX 服务背后的异步/等待吗?

我有一个Web应用程序,它为JSON和ASMXWeb服务提供WCFRESTAPI。该应用程序已经存在了几年。它基于ASP.NET2.0,但在几年前升级到.NET4.0,我刚刚升级到.NET4.5以便能够使用新的异步框架。应用程序背后是一些遗留服务,我意识到通过异步提高性能的潜力很大。我在整个应用程序中实现了异步,并且一切都通过WCFRESTAPI完美运行。我发现ASMXAPI失败时为时已晚,我想要这样的方法:[WebMethod(Description="TakesaninternaltripIDasparameter.")]asyncpublicTaskGetTrip(inttrip

c# - 如何等待 BackgroundWorker 完成然后退出控制台应用程序

我已经使用Stackoverflow中发布的其中一个示例编写了一个示例控制台应用程序来测试backgroundworker。我有一个backgroundworker,它以main方法开始,但如果我按enter键,它会在操作中间结束,因为我在main方法中写了一个console.readkey。但我希望它等到后台工作人员完成工作然后退出应用程序。这是我的代码。classProgram{privatestaticBackgroundWorkerworker=newBackgroundWorker();privateeventEventHandlerBackgroundWorkFinishe